.row {
    --hover-bg-color: hsl(217, 37%, 98%);
    --crate-color: var(--grey700);
    --placeholder-opacity: 0.35;
    --shadow: 0 1px 3px hsla(51, 90%, 42%, .35);

    position: relative;
    font-size: 18px;
    padding: var(--space-s) var(--space-m);
    background-color: white;
    border-radius: var(--space-3xs);
    box-shadow: var(--shadow);
    transition: all var(--transition-slow);

    &:hover, &.focused {
        background-color: var(--hover-bg-color);
        transition: all var(--transition-instant);
    }

    &.focused {
        box-shadow: 0 0 0 3px var(--yellow500), var(--shadow);
    }
}

.top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;

    @media only screen and (max-width: 550px) {
        display: block
    }
}

.left {
    overflow: hidden;
    text-overflow: ellipsis;
}

.link {
    color: var(--crate-color);
    font-weight: 500;
    margin-right: var(--space-s);
    outline: none;

    &:hover {
        color: var(--crate-color);
    }

    &::after {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
    }
}

.range {
    color: var(--grey600);
    text-transform: uppercase;
    letter-spacing: .7px;
    font-size: 13px;
}

.downloads {
    display: flex;
    align-items: center;
    color: var(--grey600);
    font-size: 16px;
    font-weight: 500;
    font-variant: tabular-nums;

    @media only screen and (max-width: 550px) {
        margin-top: var(--space-xs);
    }
}

.download-icon {
    width: auto;
    height: 16px;
    flex-shrink: 0;
    margin-right: 7px;
}

.description {
    margin-top: var(--space-2xs);
    color: var(--crate-color);
    font-size: 90%;
    line-height: 1.5;

    @media only screen and (max-width: 550px) {
        margin-top: var(--space-xs);
    }
}

.description-placeholder {
    height: 1em;
    width: 70%;
    border-radius: var(--space-3xs);
    opacity: var(--placeholder-opacity);
}
